package com.wellsoft.pt.app.dingtalk.job;

import org.quartz.JobExecutionContext;

import com.wellsoft.context.util.ApplicationContextHolder;
import com.wellsoft.pt.app.dingtalk.service.MultiOrgDingDeptService;
import com.wellsoft.pt.app.dingtalk.utils.DingtalkApiUtils;
import com.wellsoft.pt.task.job.Job;
import com.wellsoft.pt.task.job.JobData;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * Description: 如何描述该类
 *  
 * @author Well
 * @date 2020年5月29日
 * @version 1.0
 * 
 * <pre>
 * 修改记录:
 * 修改后版本	修改人		修改日期			修改内容
 * 2020年5月29日.1	Well		2020年5月29日		Create
 * </pre>
 *
 */
public class DingtalkDeptInfoAsynJob extends Job {

	@Override
	protected void execute(JobExecutionContext arg0, JobData arg1) {
		MultiOrgDingDeptService multiOrgDingDeptService = ApplicationContextHolder
				.getBean(MultiOrgDingDeptService.class);
		// MultiOrgDingUserInfoService multiOrgDingUserInfoService =
		// ApplicationContextHolder
		// .getBean(MultiOrgDingUserInfoService.class);
		String accessToken = DingtalkApiUtils.getAccessToken();
		JSONObject jb = DingtalkApiUtils.getDingTalkDeptList(accessToken);
		if (jb != null) {
			Object obj = jb.get("department");
			if (obj != null) {
				JSONArray arrays = jb.getJSONArray("department");
				for (int i = 0; i < arrays.size(); i++) {
					JSONObject dept = arrays.getJSONObject(i);
					multiOrgDingDeptService.fetchDeptFromDingtalk(dept, i, null); // 新增部门数据
					// 新增用户数据
					// JSONObject usersJb =
					// DingtalkApiUtils.getDingTalkUserListbypage(deptId,
					// accessToken);
					// if (usersJb != null) {
					// Object userObj = usersJb.get("userlist");
					// if (userObj != null) {
					// JSONArray userList = usersJb.getJSONArray("userlist");
					// for (int j = 0; j < userList.size(); j++) {
					// JSONObject userJb = userList.getJSONObject(j);
					// // String userId = userJb.getString("userid");
					// multiOrgDingUserInfoService.addUserFromDingtalk(userJb);
					// }
					// }
					// }
				}
			}
		}
	}
}
